Сущности (entities) и сервисы (services) как основа распределенной логики для MVC шаблона проектирования

При разработке разных по масштабу приложений становится все более интересно применять различные подходы к проектированию веб приложения. В последнее время особо остро встал вопрос о разделении логики в большом проекте, базирующийся на MVC шаблоне проектирования.

Сущности и сервисы

Сущности

Поскольку задачи стали более сложные и комплексные, а данные в БД хранить все невозможно, то было принято решение о создание сущностей статичных данных в проекте. Суть простая — в определенном месте хранятся базовые статичные данные, которыми можно оперировать в PHP коде, а в БД заносятся их англоязычное представление.
В базовом представлении класс Entity.php может иметь следующий вид:

declare(strict_types = 1);  namespace entities;  class Entity { 	protected static $map; 	 	public static function getMap():array { 		return static::$map; 	} }

Наследники его должны реализовать свойство $map, которое будут получать следующим образом:

E1::getMap();

Причем,









Читать далее